

# 1.请求对象的定制
# 2.获取网页的源码
# 3.下载


# 需求：下载前十页的图片-
# https://sc.chinaz.com/tupian/meinvtupian.html     1
# https://sc.chinaz.com/tupian/meinvtupian_2.html   2
# https://sc.chinaz.com/tupian/meinvtupian_3.html   3

import urllib.request
from lxml import etree


def create_request(page):
    if page == 1:
        url = 'https://sc.chinaz.com/tupian/meinvtupian.html'
    else:
        url = 'https://sc.chinaz.com/tupian/meinvtupian_' + str(page) + '.html'

    # print(url)

    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'
    }

    request = urllib.request.Request(url=url, headers=headers)
    # print(request)
    return request


def get_content(request):
    response = urllib.request.urlopen(request)
    content = response.read().decode('utf-8')
    # print(content)
    return content


def down_load(content):
    # 下载图片
    # urllib.request.urlretrieve('图片地址', '文件的名字')
    tree = etree.HTML(content)

    # 一般涉及到图片的网站都会进行懒加载
    img_list = tree.xpath('//div[@class="item"]/img/@data-original')

    name_list = tree.xpath('//div[@class="item"]/img/@alt')

    print(len(name_list), len(img_list))
    # for name in name_list:
    #     print(name)

    # 打印下载
    for i in range(len(name_list)):
        name = name_list[i]
        img = img_list[i]
        url = 'https:' + img
        print(name, url)
        urllib.request.urlretrieve(url=url, filename='./zhanzhangsucai_img/' + name + '.jpg')


if __name__ == '__main__':
    start_page = int(input("请输入起始页码: "))
    end_page = int(input('请输入结束页码: '))
    for page in range(start_page, end_page+1):
        # 1.请求对象的定制
        request = create_request(page)
        # 2.获取网页的源码
        content = get_content(request)
        # 3.下载
        down_load(content)
